/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Controllers;

import Entities.BasisReis;
import Entities.Continent;
import Entities.Klant;
import Entities.Land;
import Entities.Stad;
import Entities.VervoersmiddelType;
import Interfaces.ZoekenInterface;
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import javax.enterprise.context.RequestScoped;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.validator.ValidatorException;
import javax.inject.Inject;
import javax.inject.Named;


/**
 *
 * @author Heil Andy
 */
@Named
@RequestScoped
public class ControllerReisZoeken implements Serializable {

    @Inject
    private ZoekenInterface zoekenInterface;
    Land vertrekplaats;
    Land Bestemming;
    Date vertrekdatum;
    Date einddatum;
    List<VervoersmiddelType> vervoerTypes;
    private int continent_id_vertrek;
    private int continent_id_aankomst;
    private int vervoersmiddel_id;
    private int stad_id_vertrek;
    private int stad_id_aankomst;
    List<BasisReis> zoekenReizen;
    BasisReis basisReis;
    private int aantalpersonen;

    public int getAantalpersonen() {
        return aantalpersonen;
    }

    public void setAantalpersonen(int aantalpersonen) {
        this.aantalpersonen = aantalpersonen;
    }

    public int getStad_id_aankomst() {
        return stad_id_aankomst;
    }

    public void setStad_id_aankomst(int stad_id_aankomst) {
        this.stad_id_aankomst = stad_id_aankomst;
    }

    public BasisReis getBasisReis() {
        return basisReis;
    }

    public void setBasisReis(BasisReis basisReis) {
        this.basisReis = basisReis;
    }

    public List<BasisReis> getZoekenReizen() {
        return zoekenReizen;
    }

    public int getVervoersmiddel_id() {
        return vervoersmiddel_id;
    }

    public void setVervoersmiddel_id(int vervoersmiddel_id) {
        this.vervoersmiddel_id = vervoersmiddel_id;
    }

    public void setZoekenReizen(List<BasisReis> zoekenReizen) {
        this.zoekenReizen = zoekenReizen;
    }

    public ControllerReisZoeken() {
    }

    public int getStad_id_vertrek() {
        return stad_id_vertrek;
    }

    public void setStad_id_vertrek(int stad_id_vertrek) {
        this.stad_id_vertrek = stad_id_vertrek;
    }

    public int getContinent_id_vertrek() {
        return continent_id_vertrek;
    }

    public void setContinent_id_vertrek(int continent_id_vertrek) {
        this.continent_id_vertrek = continent_id_vertrek;
    }

    public int getContinent_id_aankomst() {
        return continent_id_aankomst;
    }

    public void setContinent_id_aankomst(int continent_id_aankomst) {
        this.continent_id_aankomst = continent_id_aankomst;
    }

    public Land getVertrekplaats() {
        return vertrekplaats;
    }

    public void setVertrekplaats(Land vertrekplaats) {
        this.vertrekplaats = vertrekplaats;
    }

    public Land getBestemming() {
        return Bestemming;
    }

    public void setBestemming(Land Bestemming) {
        this.Bestemming = Bestemming;
    }

    public Date getVertrekdatum() {
        return vertrekdatum;
    }

    public void setVertrekdatum(Date vertrekdatum) {
        this.vertrekdatum = vertrekdatum;
    }

    public Date getEinddatum() {
            return einddatum;
    }

    public void setEinddatum(Date einddatum) {
        this.einddatum = einddatum;
    }

    public String zoekenBasic() {

            try {

                zoekenReizen = zoekenInterface.zoekenBasic(stad_id_vertrek , stad_id_aankomst, vertrekdatum, einddatum, aantalpersonen,vervoersmiddel_id); 
                this.setZoekenReizen(zoekenReizen);

                 FacesContext context = FacesContext.getCurrentInstance();
                 VervoersmiddelType versmiddeltypeid = zoekenInterface.getVervoersmiddelTypeById(vervoersmiddel_id);
                 context.getExternalContext().getSessionMap().put("versmiddeltypeid", versmiddeltypeid);
                context.getExternalContext().getSessionMap().put("aantalpersonen",aantalpersonen);

                return "reizenOverzicht.xhtml";
            } catch (Exception e) {
                //fout page
                return "error.xhtml";
            }
    }
    
//    public String zoekenBasicAantalPersonen(int aantalpersonen) {
//
//        try {
//            zoekenReizen = zoekenInterface.zoekenBasicAantalPersonen(aantalpersonen);
//            this.setZoekenReizen(zoekenReizen);
//            return "reizenOverzicht.xhtml";
//        } catch (Exception e) {
//            //fout page
//            return e.toString();
//        }
//    }
    public List<Continent> getAllContinent() {
        return zoekenInterface.continenten();
    }

    public List<Land> getAllLanden() {
        return zoekenInterface.landen();
    }
    
    public List<Stad> getAllSteden(){
        return zoekenInterface.steden();
    } 

    public List<VervoersmiddelType> getAllVervoersMiddelTypes() {
        return zoekenInterface.vervoersmiddeltypes();
    }
}
